package com.online.web.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.online.web.domain.CallResponse;
import com.online.web.domain.CallScenario;
import com.online.web.domain.CallScene;
import com.online.web.domain.IntelligentCallParameters;

import java.util.List;

/**
 * 智能电话服务
 *
 * @author xiangtianlei
 * @date 2023/08/10
 */
public interface IntelligentCallService {
    /**
     * 任务执行
     *
     * @param callScene  调用场景
     * @param parameters 参数
     * @return {@link CallResponse}
     * @throws JsonProcessingException json处理异常
     */
    CallResponse executeTask(IntelligentCallParameters parameters, CallScene callScene) throws JsonProcessingException;

    /**
     * 获取执行结果
     *
     * @param parameters 参数
     * @param taskIdList 任务id列表
     * @return 执行结果
     */
    CallResponse getExecutionResult(IntelligentCallParameters parameters, List<String> taskIdList);

    /**
     * 获取场景列表
     *
     * @return 场景列表
     */
    CallResponse getSceneList();

    /**
     * 新建场景接口
     *
     * @param callScene  场景对象
     * @param parameters 参数
     * @return 新建场景的ID
     */
    CallResponse createScene(IntelligentCallParameters parameters, CallScenario callScene);
}
